package org.xx.sipahi.jpa;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

import static org.apache.commons.lang3.StringUtils.trimToEmpty;

@Entity(name = "noticeContent")
@Table(name = "CM_NOTICE")
public class NoticeContentPO {
    private long id;
    private String content;

    /**
     * 获取公告的ID。
     *
     * @return 公告ID。
     */
    @Id
    @Column(name = "CN_ID")
    public long getId() {
        return id;
    }

    /**
     * 设置公告的ID。
     *
     * @param id
     *         公告ID。
     */
    public void setId(
            long id
    ) {
        this.id = id;
    }

    /**
     * 获取公告的内容。
     *
     * @return 公告内容。
     */
    @Lob
    @Column(name = "CONTENT")
    public String getContent() {
        return content;
    }

    /**
     * 设置公告的内容。
     *
     * @param content
     *         公告内容。
     */
    public void setContent(
            String content
    ) {
        this.content = trimToEmpty(content);
    }

    @Override
    public int hashCode() {
        return (int) this.getId();
    }

    @Override
    public boolean equals(
            Object o
    ) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        final NoticeContentPO that = (NoticeContentPO) o;

        return this.getId() == that.getId();
    }

    @Override
    public final String toString() {
        final int contentLength = this.getContent() != null ? this.getContent().length() : 0;
        return "NoticeContent(id=" + this.getId() + ",content=char[" + contentLength + "])";
    }
}
